Matrix printers, such as dot or pin printers and ink jet printers, typically include a multitude, often a multiple of eight, of print elements arranged in a vertical orientation in relationship to the print medium. However, by slanting the linear arrangement of print head dot elements away from vertical, printing resolution can be improved, while also permitting an element-to-element spacing considerably greater than that permitted by a vertical arrangement of print head dot elements. A greater print output rate can be obtained by utilizing a print head having a number of print elements which span multiple lines of print, thereby printing several rows of text simultaneously.
Two common problems associated with matrix printing, particularly for slanted print heads containing many channels, are:
1. Large matrix heads simultaneously span several columns and rows of characters. This makes the task of calculating element or dot states quite complex. PA1 2. Character matrices that are not 8 bits wide have patterns which cross byte boundaries in memory and the microprocessor registers. PA1 1. the print head spans the document's print band as a diagonal line, simultaneously covering about 16 character columns and four print lines (for a typical character font 6 dots wide and 8 dots high), and PA1 2. in real time, new states for all 32 channels must be generated every 180 microseconds (for typical document speed of 2640 mm/sec) PA1 (Step 1.) processor initializes COLUMN# and CHANNEL# at the beginning of the dot generation sequence to form a ROM lookup address (.dbd.DOT#), PA1 (Step 2.) the dot generator utilizes the lookup address from step 1 to fetch the BOX# for that dot from ROM, PA1 (Step 3.) the dot generator then fetches the ASCII character from RAM for the character box (BOX# from step 2), PA1 (Step 4.) simultaneously with step 3, the dot generator fetches the ELEMENT#, a number describing a dot's relative position within a character box, for the dot with a second ROM lookup, PA1 (Step 5.) the generator then finds the dot's printing state, using the ASCII character (from step 3) and the ELEMENT# (from step 4), PA1 (Step 6.) the generator then stores the dot state (from step 5) in a shift register, and PA1 (Step 7.) the process repeats from step 2 for all 32 channels; the CHANNEL# is incremented each time.
Consider a printer including a 32 channel, demand ink jet print head having a spacing between individual print elements of 1.5 mm. The total span of all 32 elements of the print head is 46.5 millimeters--much larger than desired to print a single column of dots. To print a dot column 15 mm (0.6 in.) high the print head must be tilted at an angle of approximately 19 degrees from horizontal. This results in a vertical channel pitch of about 0.5 mm. This orientation results in these problems:
Current methods for determining dot states employ several microprocessors and intermediate storage memory to build a complete bit-map image of the print zone before printing begins. Additional processors are required when more than one print head is used in the printer.